<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 编写函数norepeat(arr) 将数组的重复元素去掉，并返回新的数组

        var arr = [1, 1, 2, 3, 4, 4, 2, 1, 3, 5]
        function norepeat(arg) {
            // code in here ...
            var newArr = [];
            // **遍历 元素数组中每一个元素 ，
            //  判断--这个元素是否在newArr中，如果不在就 添加到newArr中，
            for (var v of arg) {
                if (newArr.includes(v) === false) {
                    newArr.push(v)
                }
            }
            // console.log(newArr);
            return newArr
        }

        console.log(norepeat(arr)) // [1, 2, 3, 4, 5]



        var arr = [1, 1, 2, 3, 4, 4, 2, 1, 3, 5]

        // var res2 = arr.filter(function (v, i) {
        //     // arr.indexOf(v)  v 在arr中第一出现的下标
        //     var firstIndex = arr.indexOf(v)
        //     // 如果firstIndex 和 i 相等 说明 这个元素v 是第一次出现，如果不等说明不是第一次出现
        //     // i 是遍历v的时候，这个v的下标
        //     // 过滤出 i 和firstIndex 相等的元素 （第一次出现的元素）
        //     return i === firstIndex
        // })
        // console.log(res2);

        var res2 = arr.filter(function (v, i) {
            // arr.indexOf(v)  v 在arr中第一出现的下标
            // var firstIndex = arr.indexOf(v)
            // 如果firstIndex 和 i 相等 说明 这个元素v 是第一次出现，如果不等说明不是第一次出现
            // i 是遍历v的时候，这个v的下标
            // 过滤出 i 和firstIndex 相等的元素 （第一次出现的元素）
            return arr.indexOf(v) == i
        })
        console.log(res2);



        // 1 1
        // 【1】
        var res3 = arr.reduce(function (sum, v) {
            // 【】  1 
            // 【1】 1
            // 【1】 2 
            // 【1,2】 3
            // 【1,2，3】 4
            // 判断v 是否在sum中
            if (sum.includes(v) == false) {
                sum.push(v)
            }
            return sum;
        }, [])
        console.log(res3);



    </script>

</body>

</html>